#include "textparser.h"

TextParser::TextParser() {}


/**
 * @brief TextParser::parseInfo 分析数据的前处理过程，替换字符
 * @param planText 待分析的数据
 * @return 分析完毕的数据键值对
 */
QMap<QString,QString> TextParser::parseInfo(const QString& planText){
    QString modified = planText.toUpper();
    modified.replace("：",":");

    return parseText(modified);
}

/**
 * @brief TextParser::parseText 分析数据的主方法
 * @param planText 已经前处理完毕的数据
 * @return 分析完毕的键值对
 */
QMap<QString,QString> TextParser::parseText(const QString& planText){
    QMap<QString, QString> result;

    QRegularExpression regexp("【([^】]+)】([^【]*)");
    QRegularExpressionMatchIterator matches = regexp.globalMatch(planText);

    while(matches.hasNext()){
        QRegularExpressionMatch match = matches.next();
        QString key = match.captured(1).trimmed();
        QString value = match.captured(2).trimmed();
        value = value.remove(":").trimmed();
        if(value.isEmpty()){
            continue;
        }
        result.insert(key,value);
    }

    return result;
}
